//
//  AudioFileIOManager.h
//  FilterModule_Standalone
//
//  Created by kadlubek47 on 13.03.2013.
//  Copyright (c) 2013 kadlubek47. All rights reserved.
//

#ifndef __LowPassFilter_Standalone__AudioFileIOManager__
#define __LowPassFilter_Standalone__AudioFileIOManager__


class IAudioFileIOManager {
public:
    virtual ~IAudioFileIOManager() {}
    
    class IAudioFileIOManager_struct {
    public:
        int             wantedBytePerSample;    /*in*/
        long long int   channelLength;          /*out*/
        int             numOfChannels;          /*out*/
        unsigned int    sampleRate;             /*out*/
    };
    
    virtual void read   ( void** channels /*coalescing channels >>out<< */,  const char* filePath , IAudioFileIOManager_struct& str) = 0;
    virtual void write  ( void*  channels /*coalescing channels         */,          const char* filePath) = 0;
};


#endif /* defined(__LowPassFilter_Standalone__AudioFileIOManager__) */
